/**
 * 字符串长度截取
 * @param str
 * @param length
 * @returns {string}
 */
function strLengthHandler(str, length) {
    if (str.length > length)
        return str.substring(0, length) + "...";
    else
        return str;
}

/**
 * 把阿拉伯数字转为中文数字
 * @param num
 * @returns {*}
 */
function getchinaNum(num) {
    var chinaNum = new Array('零', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二', '十三', '十四', '十五', '十六', '十七', '十八', '十九', '二十');
    return chinaNum[num];
}

/**
 * unix timestamp 转 2017-01-23这种
 * @param time
 * @returns {string}
 */
function renderDate(time) {
    var date = new Date(time);
    return date.getFullYear() + "-" + (date.getMonth() + 1) + "-"
        + date.getDate();
}

function renderDate2(time) {
    var date = new Date(time);
    var year = date.getFullYear();
    var month = date.getMonth() + 1;
    var day = date.getDate();
    if (month < 10) {
        month = "0" + month;
    }
    if (day < 10) {
        day = "0" + day;
    }
    return (year + '-' + month + '-' + day);
}

/**
 * 将秒数转换为小时
 * @param seconds
 */
function renderHour(seconds){
    return Math.round(seconds / 3600);
}

/**
 * 将小时转换为秒
 * @param hour
 */
function renderSeconds(hour){
    return hour * 3600;
}

/**
 * 判断是否为空  空则返回true
 * @param obj
 * @returns {boolean}
 */
function isNull(obj) {
    var reg = new RegExp("^\s*$");  //匹配空白符
    if (reg.test(obj) || obj == null)   //"" 或者 null 返回ture
        return true;
    else
        return false;
}

/**
 * 判断是否不为空
 * 如果为空则返回false， 不空则true
 * @param obj
 * @returns {boolean}
 */
function isNotNull(obj) {
    var reg = new RegExp("^\s*$");  //匹配空白符
    if (reg.test(obj) || obj == null)   //"" 或者 null 返回ture
        return false;
    else
        return true;
}

/**
 * 手机号验证
 * @returns {boolean}
 */
function checkMobile(phone) {
    if (!(/^1[3|4|5|7|8][0-9]\d{4,8}$/.test(phone))) {
        return false;
    }
    return true;
}


/**
 * 根据ID 返回DOM对象
 * @param id
 * @returns {Element} DOM对象
 */
function getById(id) {
    return document.getElementById(id);
}


/**
 * 用于验证
 * 传入的json格式 { "值为空时弹出的消息": value }
 * 如果值为空 则会弹窗显示 key
 * @param json
 * @returns {boolean}
 */
function validateArgs(json) {
    for (var msg in json) {
        if (isNull(json[msg])) {
            toastr.error(msg);
            return false;
        }
    }
    return true;
}

/**
 * 吧容器中所有input设为null select默认选中第一个
 * @param id
 */
function resetForm(id) {
    $holder = $('#' + id);
    var inputs = $holder.find('input');
    var selects = $holder.find('select');

    for (var i = 0; i < inputs.length; i++) {
        inputs[i].value = null;
    }
    for (var i = 0; i < selects.length; i++) {
        $(selects[i]).find('option:first').prop("selected", 'selected');       //设置第一个为选中
    }
}

/**
 * size为b
 * @param size
 */
function fomatFileSize(size) {
    if (size < 1024)
        return size + "b";
    else if (size < Math.pow(1024,2))
        return Math.ceil(size/1024) + "kb";
    else if (size < Math.pow(1024,3))
        return Math.ceil(size/Math.pow(1024,2)) + "mb";
    else if (size < Math.pow(1024,4))
        return Math.ceil(size/Math.pow(1024,3)) + "gb";
}


/**
 * 折半查找  数组中找出指定值。
 *  可扩展成数组元素为json之类的
 * @param target
 * @param array
 * @param order     0数组从小到大， 1数组从大到小
 * @returns {*}
 */
function binarySearch(target, array, order) {
    var length = array.length;
    var beginIndex = 0;
    var endIndex = length;
    var half;
    if (order == 0) {       //从小到大排列
        for (var i = 0; i < length / 2; i++) {
            half = beginIndex + Math.round((endIndex - beginIndex) / 2);  //取中值
            if (target == array[half]) {
                return array[half];
            }

            if (target < array[half])
                endIndex = half;
            else
                beginIndex = half;
        }
    }
    if (order == 1) {       //从大到小排列
        for (var i = 0; i < length / 2; i++) {
            half = beginIndex + Math.round((endIndex - beginIndex) / 2);  //取中值
            if (target == array[half]) {
                return array[half];
            }

            if (target < array[half])
                beginIndex = half;
            else
                endIndex = half;
        }
    }
}

function renderDate(time) {
    if (isNull(time) || time == 0)   //如果为空 则返回空
        return "";
    var date = new Date(time);
    return date.getFullYear() + "-" + (date.getMonth() + 1) + "-"
        + date.getDate();
}